package com.jic.order.service;

import com.jic.common.base.vo.RestResult;
import com.jic.order.rest.request.CartOrderRequest;
import com.jic.order.rest.request.CartSettleAddressRequest;
import com.jic.order.rest.request.CartSettleRequest;
import com.jic.order.rest.request.DirectSettleRequest;
import com.jic.order.rest.response.CartSettleAddressResponse;
import com.jic.order.rest.response.CartSettleResponse;

/**
 * @author: gaolanyu
 * @date: 2020-02-05
 * @remark:
 */
public interface SettleService {
    public RestResult<String> initOrder(CartOrderRequest cartOrderRequest, boolean directFlag);

    public RestResult<CartSettleResponse> settle(CartSettleRequest cartSettleRequest, boolean directFlag);

    public RestResult<CartSettleAddressResponse> address(CartSettleAddressRequest cartSettleAddressRequest, boolean directFlag);

    public RestResult<CartSettleResponse> directSettle(DirectSettleRequest directSettleRequest);

    public RestResult<Boolean> getDirectFlagByShoppingCartId(String shoppingCartId, long userId);

    RestResult<CartSettleResponse> grouponSettle(DirectSettleRequest directSettleRequest);
}
